#pragma once

#include "DataStructure/Input/Dynamic/SPECSELData.h"

#include "DBManager/Common/Trait/InputTrait.h"
#include "DBManager/DBServiceFactory.h"

SG_DBMANAGER_NAMESPACE_OPEN

/**
 * @brief
 *
 * @author   wuxingchuang
 * @date     2025.06.23
 */
class DBManager_DECLSPEC ISPECSELService : public AddTrait<SG::DataStructure::FEM::SPECSELData>,
                                           public FindByIndexTrait<SG::DataStructure::FEM::SPECSELData>,
                                           public FindByIdTrait<SG::DataStructure::FEM::SPECSELData>,
                                           public SizeTrait,
                                           public GetAllIdTrait,
                                           public CountTrait
{
  public:
    virtual ~ISPECSELService () {};
};

template <>
std::shared_ptr<ISPECSELService> DBManager_DECLSPEC DBServiceFactory::get ();

SG_DBMANAGER_NAMESPACE_CLOSE
